package com.vhall.component.entity.page.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.vhall.component.framework.common.annotation.ParamName;
import lombok.Data;

import javax.validation.constraints.Min;
import java.io.Serializable;
import java.util.Objects;

/**
 * CommonPageVO-公共的分页参数类
 *
 * @author xing.wang
 * @date 2022/9/6
 */
@Data
public class CommonPageVO implements Serializable {
    /**
     * 页码
     */
    @Min(value = 1, message = "分页参数页码不能小于1")
    private Integer page;
    /**
     * 每页显示数据数量,不传入情况下默认为10
     */
    @ParamName("page_size")
    @JsonProperty("page_size")
    private Integer pageSize;

    /**
     * 页码设置默认返回值
     *
     * @return 页码
     */
    public Integer getPage() {
        if (Objects.isNull(page) || page == 0) {
            page = 1;
        }
        return page;
    }

    /**
     * 单页大小设置返回值
     *
     * @return 分页显示数据量
     */
    public Integer getPageSize() {
        if (Objects.isNull(pageSize) || pageSize == 0) {
            pageSize = 10;
        }
        return pageSize;
    }
}
